In the Business Intelligence (BI) realm, “ad hoc reporting” refers to the relatively fast building of computer data reports by users according to their own information “requirements” in real-time, without relying on predefined, pre-coded templates. It is used typically as a form of information analysis, enabling users to connect BI software to data sources, identify on-the-fly the requirements of a report, and rapidly generate the report. Ad hoc reports can be of varying complexity, from a basic data table to a sophisticated multi-interface product with graphics and interactive elements.
While performing ad hoc reporting using a BI tool, a user selects the desired dimension/attributes and measures, applies filters, and then accordingly the BI engine will dynamically create code to execute the report, using the selected parameters, in backend database(s). The extracted data from the backend is ultimately presented in a generated ad hoc report. Even though BI reporting can be relatively quick, and pre-calculation may be done, often there is an issue with report performance, for instance in the time is takes to actually execute the report. Reports often take more time than expected or desired based on various factors including but not limited to the amount of data involved, the complexity of the dynamically generated code, network performance, and/or the number of concurrent users.